# /**
# * Copyright (c) 2022 Beijing Jiaotong University
# * photlab is licensed under [Open Source License].
# * You can use this software according to the terms and conditions of the [Open Source License].
# *
# * You may obtain a copy of [Open Source License] at: [https://open.source.license/]
# *
# * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# *
# * See the [Open Source License] for more details.
# */
# /**
# * Author: Shihao Xie
# * Created: Jul. 8, 2022
# * Supported by: National Key Research and Development Program of China
# */

namespace py phot_server.rpc.library_data_type
include "graph_data_type.thrift"

struct PhotComponentPrototype{
    # Compute Engine required attributes.

    2:required string name,
    3:required string calculationMethod,
    4:required string parallelComputingMethod,

    # phot support attribute
    11:required bool isAnalyzer,
    12:required bool isClass,
    13:required string description,

    21:required string nameTag,
    22:required string iconName,
    23:optional graph_data_type.RenderRect rect,

    # phot server search engine support
    31:required string category,
    32:required string path,

    41:required map<string, list<graph_data_type.PhotParameter>> parameters,
    42:required list<graph_data_type.RenderPort> ports,
}